﻿using System;

namespace GVPSys.sysbase
{
    public interface ICommandAdvised
    {
    }

    /// <summary> 拦截器 </summary>
    public interface ICommandInterceptor : ICommandAdvised
    {
        object Invoke(IInvocation invocation);
    }

    /// <summary> 异常拦截器 </summary>
    public interface ICommandThrowsInterceptor : ICommandAdvised
    {
        void AfterThrowing(Exception err);
    }

    public interface IBeforeCommand : ICommandAdvised
    {
        void Before(object parameter);
    }

    public interface IAfterCommand : ICommandAdvised
    {
        void After(object result);
    }
}
